package org.dtrd.modules.content.tags.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.dtrd.modules.content.tags.entity.bean.TagGroupInfo;
import org.dtrd.modules.content.tags.entity.bean.TagsDetail;
import org.dtrd.modules.content.tags.entity.bean.TagsListInfo;
import org.dtrd.modules.content.tags.entity.po.DtrdExtEmsYwTags;
import org.dtrd.modules.content.tags.entity.request.TagsPageRequest;

import java.util.List;

/**
 * <p>
 * 标签服务类
 * </p>
 *
 * @author QR
 * @since 2022-03-15
 */
public interface IDtrdExtEmsYwTagsService extends IService<DtrdExtEmsYwTags> {

    /**
     * 获取标签列表
     */
    List<TagsListInfo> getTagsList(String tagName, Integer tagType);

    List<TagsListInfo> listTagsByTagType(Integer tagType, String tagName);

    /**
     * 获取患者绑定的标签
     */
    List<String> getPatientTags(Integer patientId);

    /**
     * 校验分类是否关联标签
     */
    boolean hasLinkTag(Integer tagCategoryId);

    IPage<TagsListInfo> pageTags(TagsPageRequest request);

    boolean saveOrUpdateTags(TagsDetail dto);

    /**
     * 同时删除关联表的数据
     */
    boolean removeTags(Integer tagId);

    /**
     * 通过 pid 获取某个级别分类下所有子标签
     */
    List<TagGroupInfo> listTags(Integer pid);
}
